


<a name="blitzmacros"></a>
    









































<html><head><title>Blitz++ User's Guide</title>

<link rev="made" href="mailto:tveldhui@acm.org">
</head>
<body fgcolor="#27408B" bgcolor="#FFFAF0">

<hr>

<h1>Blitz++ User's Guide</h1>
<h2>Todd Veldhuizen <br> <code>&lt;tveldhui@acm.org&gt;</code></h2>
<h2>Version 1.2, February 2001</h2>

<p><hr><p><br><h1>Table of Contents </h1><p></p>
<dl><p>
<dt><h2><a href="blitz01.html#l1">Chapter 1: Introduction</a></h2>
</dl><p>
<dt><a href="blitz01.html#l2">>1.1: About this document</b><br></a>
<dt><a href="blitz01.html#l3">>1.2: Platform notes</b><br></a>
<dt><a href="blitz01.html#l4">>1.2.1: KAI C++<br></a>
<dt><a href="blitz01.html#l5">>1.2.2: Intel C++<br></a>
<dt><a href="blitz01.html#l6">>1.2.3: gcc<br></a>
<dt><a href="blitz01.html#l7">>1.2.4: Metrowerks<br></a>
<dt><a href="blitz01.html#l8">>1.2.5: DECcxx<br></a>
<dt><a href="blitz01.html#l9">>1.2.6: Cray T3E/Cray T90/Cray C90/Cray J90<br></a>
<dt><a href="blitz01.html#l10">>1.3: How to download Blitz++</b><br></a>
<dt><a href="blitz01.html#l11">>1.4: Installation and porting</b><br></a>
<dt><a href="blitz01.html#l12">>1.4.1: Installation<br></a>
<dt><a href="blitz01.html#l13">>1.4.2: The Blitz++ directory tree<br></a>
<dt><a href="blitz01.html#l14">>1.4.3: Porting Blitz++<br></a>
<dt><a href="blitz01.html#l15">>1.5: Compiling with Blitz++</b><br></a>
<dt><a href="blitz01.html#l16">>1.5.1: Header files<br></a>
<dt><a href="blitz01.html#l17">>1.5.2: Linking to the Blitz++ library<br></a>
<dt><a href="blitz01.html#l18">>1.5.3: An example Makefile<br></a>
<dt><a href="blitz01.html#l19">>1.5.4: Explicit instantiation<br></a>
<dt><a href="blitz01.html#l20">>1.6: Licensing terms</b><br></a>
<dt><a href="blitz01.html#l21">>1.7: Mailing lists and support</b><br></a>
<dt><a href="blitz01.html#l22">>1.7.1: How to get help<br></a>
<dt><a href="blitz01.html#l23">>1.7.2: How to subscribe to a mailing list<br></a>
<dt><a href="blitz01.html#l24">>1.7.3: blitz-bugs<br></a>
<dt><a href="blitz01.html#l25">>1.7.4: blitz-dev<br></a>
<dt><a href="blitz01.html#l26">>1.7.5: blitz-support<br></a>
<dl><p>
<dt><h2><a href="blitz02.html#l27">Chapter 2: Arrays</a></h2>
</dl><p>
<dt><a href="blitz02.html#l28">>2.1: Getting started</b><br></a>
<dt><a href="blitz02.html#l29">>2.1.1: Template parameters<br></a>
<dt><a href="blitz02.html#l30">>2.1.2: Array types<br></a>
<dt><a href="blitz02.html#l31">>2.1.3: A simple example<br></a>
<dt><a href="blitz02.html#l32">>2.1.4: Storage orders<br></a>
<dt><a href="blitz02.html#l33">>2.2: Public types</b><br></a>
<dt><a href="blitz02.html#l34">>2.3: Constructors</b><br></a>
<dt><a href="blitz02.html#l35">>2.3.1: Default constructor<br></a>
<dt><a href="blitz02.html#l36">>2.3.2: Creating an array from an expression<br></a>
<dt><a href="blitz02.html#l37">>2.3.3: Constructors which take extent parameters<br></a>
<dt><a href="blitz02.html#l38">>2.3.4: Constructors with Range arguments<br></a>
<dt><a href="blitz02.html#l39">>2.3.5: Referencing another array<br></a>
<dt><a href="blitz02.html#l40">>2.3.6: Constructing an array from an expression<br></a>
<dt><a href="blitz02.html#l41">>2.3.7: Creating an array from pre-existing data<br></a>
<dt><a href="blitz02.html#l42">>2.3.8: Interlacing arrays<br></a>
<dt><a href="blitz02.html#l43">>2.3.9: A note about reference counting<br></a>
<dt><a href="blitz02.html#l44">>2.4: Indexing, subarrays, and slicing</b><br></a>
<dt><a href="blitz02.html#l45">>2.4.1: Indexing<br></a>
<dt><a href="blitz02.html#l46">>2.4.2: Subarrays<br></a>
<dt><a href="blitz02.html#l47">>2.4.3: RectDomain and StridedDomain<br></a>
<dt><a href="blitz02.html#l48">>2.4.4: Slicing<br></a>
<dt><a href="blitz02.html#l49">>2.4.5: More about Range objects<br></a>
<dt><a href="blitz02.html#l50">>2.4.6: A note about assignment<br></a>
<dt><a href="blitz02.html#l51">>2.4.7: An example<br></a>
<dt><a href="blitz02.html#l52">>2.5: Debug mode</b><br></a>
<dt><a href="blitz02.html#l53">>2.6: Member functions</b><br></a>
<dt><a href="blitz02.html#l54">>2.6.1: A note about dimension parameters<br></a>
<dt><a href="blitz02.html#l55">>2.6.2: Member function descriptions<br></a>
<dt><a href="blitz02.html#l56">>2.7: Global functions</b><br></a>
<dt><a href="blitz02.html#l57">>2.8: Inputting and Outputting Arrays</b><br></a>
<dt><a href="blitz02.html#l58">>2.8.1: Output formatting<br></a>
<dt><a href="blitz02.html#l59">>2.8.2: Inputting arrays<br></a>
<dt><a href="blitz02.html#l60">>2.9: Array storage orders</b><br></a>
<dt><a href="blitz02.html#l61">>2.9.1: Fortran and C-style arrays<br></a>
<dt><a href="blitz02.html#l62">>2.9.2: Creating custom storage orders<br></a>
<dt><a href="blitz02.html#l63">>2.9.3: Storage orders example<br></a>
<dl><p>
<dt><h2><a href="blitz03.html#l64">Chapter 3: Array Expressions</a></h2>
</dl><p>
<dt><a href="blitz03.html#l65">>3.1: Expression evaluation order</b><br></a>
<dt><a href="blitz03.html#l66">>3.2: Expression operands</b><br></a>
<dt><a href="blitz03.html#l67">>3.3: Array operands</b><br></a>
<dt><a href="blitz03.html#l68">>3.4: Expression operators</b><br></a>
<dt><a href="blitz03.html#l69">>3.5: Assignment operators</b><br></a>
<dt><a href="blitz03.html#l70">>3.6: Index placeholders</b><br></a>
<dt><a href="blitz03.html#l71">>3.7: Type promotion</b><br></a>
<dt><a href="blitz03.html#l72">>3.8: Single-argument math functions</b><br></a>
<dt><a href="blitz03.html#l73">>3.9: Two-argument math functions</b><br></a>
<dt><a href="blitz03.html#l74">>3.10: Declaring your own math functions on arrays</b><br></a>
<dt><a href="blitz03.html#l75">>3.11: Tensor notation</b><br></a>
<dt><a href="blitz03.html#l76">>3.12: Array reductions</b><br></a>
<dt><a href="blitz03.html#l77">>3.13: Complete reductions</b><br></a>
<dt><a href="blitz03.html#l78">>3.14: Partial Reductions</b><br></a>
<dt><a href="blitz03.html#l79">>3.15: where statements</b><br></a>
<dl><p>
<dt><h2><a href="blitz04.html#l80">Chapter 4: Stencils</a></h2>
</dl><p>
<dt><a href="blitz04.html#l81">>4.1: Motivation: a nicer notation for stencils</b><br></a>
<dt><a href="blitz04.html#l82">>4.2: Declaring stencil objects</b><br></a>
<dt><a href="blitz04.html#l83">>4.3: Automatic determination of stencil extent</b><br></a>
<dt><a href="blitz04.html#l84">>4.4: Stencil operators</b><br></a>
<dt><a href="blitz04.html#l85">>4.4.1: Central differences<br></a>
<dt><a href="blitz04.html#l86">>4.4.2: Forward differences<br></a>
<dt><a href="blitz04.html#l87">>4.4.3: Backward differences<br></a>
<dt><a href="blitz04.html#l88">>4.4.4: Laplacian operators<br></a>
<dt><a href="blitz04.html#l89">>4.4.5: Gradient operators<br></a>
<dt><a href="blitz04.html#l90">>4.4.6: Jacobian operators<br></a>
<dt><a href="blitz04.html#l91">>4.4.7: Grad-squared operators<br></a>
<dt><a href="blitz04.html#l92">>4.4.8: Curl operators<br></a>
<dt><a href="blitz04.html#l93">>4.4.9: Divergence operators<br></a>
<dt><a href="blitz04.html#l94">>4.4.10: Mixed partial derivatives<br></a>
<dt><a href="blitz04.html#l95">>4.5: Declaring your own stencil operators</b><br></a>
<dt><a href="blitz04.html#l96">>4.6: Applying a stencil</b><br></a>
<dl><p>
<dt><h2><a href="blitz05.html#l97">Chapter 5: Multicomponent, complex, and user type arrays</a></h2>
</dl><p>
<dt><a href="blitz05.html#l98">>5.1: Multicomponent and complex arrays</b><br></a>
<dt><a href="blitz05.html#l99">>5.1.1: Extracting components<br></a>
<dt><a href="blitz05.html#l100">>5.1.2: Special support for complex arrays<br></a>
<dt><a href="blitz05.html#l101">>5.1.3: Zipping together expressions<br></a>
<dt><a href="blitz05.html#l102">>5.2: Creating arrays of a user type</b><br></a>
<dl><p>
<dt><h2><a href="blitz06.html#l103">Chapter 6: Indirection</a></h2>
</dl><p>
<dt><a href="blitz06.html#l104">>6.1: Indirection</b><br></a>
<dt><a href="blitz06.html#l105">>6.2: Indirection using lists of array positions</b><br></a>
<dt><a href="blitz06.html#l106">>6.3: Cartesian-product indirection</b><br></a>
<dt><a href="blitz06.html#l107">>6.4: Indirection with lists of strips</b><br></a>
<dl><p>
<dt><h2><a href="blitz07.html#l108">Chapter 7: TinyVector</a></h2>
</dl><p>
<dt><a href="blitz07.html#l109">>7.1: Template parameters and types</b><br></a>
<dt><a href="blitz07.html#l110">>7.2: Constructors</b><br></a>
<dt><a href="blitz07.html#l111">>7.3: Member functions</b><br></a>
<dt><a href="blitz07.html#l112">>7.4: Assignment operators</b><br></a>
<dt><a href="blitz07.html#l113">>7.5: Expressions</b><br></a>
<dt><a href="blitz07.html#l114">>7.6: Global functions</b><br></a>
<dt><a href="blitz07.html#l115">>7.7: Arrays of TinyVector</b><br></a>
<dt><a href="blitz07.html#l116">>7.8: Input/output</b><br></a>
<dl><p>
<dt><h2><a href="blitz08.html#l117">Chapter 8: Parallel Computing with Blitz++</a></h2>
</dl><p>
<dt><a href="blitz08.html#l118">>8.1: Blitz++ and thread safety</b><br></a>
<dl><p>
<dt><h2><a href="blitz09.html#l119">Chapter 9: Random Number Generators</a></h2>
</dl><p>
<dt><a href="blitz09.html#l120">>9.1: Overview</b><br></a>
<dt><a href="blitz09.html#l121">>9.2: Note: Parallel random number generators</b><br></a>
<dt><a href="blitz09.html#l122">>9.3: Seeding a random number generator</b><br></a>
<dt><a href="blitz09.html#l123">>9.4: Detailed description of RNGs</b><br></a>
<dt><a href="blitz09.html#l124">>9.5: Template parameters</b><br></a>
<dt><a href="blitz09.html#l125">>9.6: Member functions</b><br></a>
<dt><a href="blitz09.html#l126">>9.7: Detailed listing of RNGs</b><br></a>
<dt><a href="blitz09.html#l127">>9.7.1: <code>random/uniform.h</code><br></a>
<dt><a href="blitz09.html#l128">>9.7.2: <code>random/normal.h</code><br></a>
<dt><a href="blitz09.html#l129">>9.7.3: <code>random/exponential.h</code><br></a>
<dt><a href="blitz09.html#l130">>9.7.4: <code>random/beta.h</code><br></a>
<dt><a href="blitz09.html#l131">>9.7.5: <code>random/chisquare.h</code><br></a>
<dt><a href="blitz09.html#l132">>9.7.6: <code>random/gamma.h</code><br></a>
<dt><a href="blitz09.html#l133">>9.7.7: <code>random/F.h</code><br></a>
<dt><a href="blitz09.html#l134">>9.7.8: <code>random/discrete-uniform.h</code><br></a>
<dl><p>
<dt><h2><a href="blitz10.html#l135">Chapter 10: Numeric properties</a></h2>
</dl><p>
<dt><a href="blitz10.html#l136">>10.1: Introduction</b><br></a>
<dt><a href="blitz10.html#l137">>10.2: Function descriptions</b><br></a>
<dl><p>
<dt><h2><a href="blitz11.html#l138">Chapter 11: Frequently Asked Questions</a></h2>
</dl><p>
<dt><a href="blitz11.html#l139">>11.1: Questions about installation</b><br></a>
<dt><a href="blitz11.html#l140">>11.2: Questions about Blitz++ functionality</b><br></a>
 
<p><hr><p><br>
<p>
<p>

</body>
</html>
